<?
/**
 * Clase principal que gestiona todo el sistema
 * @file general.class.php
 * @author Meth < mth at mthweb.org >
 * @package MTHFrame
 * @date 03 Sept 2007
 */
/**
 * Se incluyen las clases auxiliares para realizar todas las operaciones
 * adodb_lite para el acceso a bases de datos, teniendo como posibilidad
 * acceder a MySQL, MySQLi, SQLite, PostgresSQL
 * xajax para todo el manejo de ajax del sistema
 */
require_once(dirname(__FILE__).'/adodb_lite/adodb.inc.php');
require_once(dirname(__FILE__).'/xajax/xajax.inc.php');
require_once(dirname(__FILE__).'/funciones.class.php');
require_once(dirname(__FILE__).'/securesession.class.php');
//INCLUYO TODAS LAS CLASES INCLUIDAS EN EL DIRECTORIO GENERAL
//SEGUN SE VAYAN NECESITANDO CON __autoload
function __autoload($class_name){
    require_once dirname(__FILE__).'/general/'.$class_name.'.class.php';
}


class general{
    /**
     * @var string Variable que almacena los mensajes de error ocurridos
     */
    var $error;
    /**
     * @var object Variable que almacena el objeto que gestiona la base de datos
     */
    var $db;
    /**
     * @var object Variable que almacena el objeto que las funciones ajax
     */
    var $xajax;
    /**
     * @var object Variable que almacena el objeto de las funciones
     */
    var $funciones;


    /**
     * Constructor de la clase principal de la tienda para manejar todo
     * el sistema
     * @param array Matriz que contiene todos los datos de acceso a la
     * base de datos
     */
    function __construct($db_conf){
        /**
         * En primer lugar creamos el objeto que manejará la base de datos
         * indicándole el tipo de base de datos que usar, y que cargue el
         * módulo base, con el que la gestión de la base de datos se hace
         * más sencilla
         */
        $this->db = ADONewConnection($db_conf['type'],'base');
        $this->db->Connect($db_conf['server'],$db_conf['user'],$db_conf['pass'],$db_conf['name']);
        /**
         * Si la conexión con la base de datos fue bien continúo inicializando
         * todas las clases auxiliares, si no es así entonces devuelvo FALSE
         */
        if(is_object($this->db)){
            $this->xajax = new xajax();
	    	$this->funciones = new funciones;
            //$this->xajax->debugOn();
            //$this->registerFunctions();
        }
        else return false;
    }
/********************************************************************************
FUNCIONES WEB FUNCIONES WEB FUNCIONES WEB FUNCIONES WEB FUNCIONES WEB
FUNCIONES WEB FUNCIONES WEB FUNCIONES WEB FUNCIONES WEB FUNCIONES WEB
FUNCIONES WEB FUNCIONES WEB FUNCIONES WEB FUNCIONES WEB FUNCIONES WEB
********************************************************************************/

/********************************************************************************
FUNCIONES XAJAX FUNCIONES XAJAX FUNCIONES XAJAX FUNCIONES XAJAX
FUNCIONES XAJAX FUNCIONES XAJAX FUNCIONES XAJAX FUNCIONES XAJAX
FUNCIONES XAJAX FUNCIONES XAJAX FUNCIONES XAJAX FUNCIONES XAJAX
********************************************************************************/

    /**
     * Función para registrar en xajax todos los métodos de la clase que
     * funcionarán gracias a xajax
     */
    function registerFunctions(){
        //$this->xajax->registerFunction(array('nombreFuncion',&$this,'xajax_nombreFuncion'));
    }//FIN registerFunctions

}